/*
 * @Description:
 * @version:
 * @Author: 潘骏杰
 * @Date: 2021-11-19 09:03:57
 * @LastEditors: 潘骏杰
 * @LastEditTime: 2022-03-10 17:19:30
 */
import Vue from 'vue'
// 路由
import VueRouter from 'vue-router'
import { asyncRouterMap } from '@/config/router.config'
import NProgress from 'nprogress' // progress bar
// import { toPrimitive } from "core-js/library/es6/symbol";
// import Storge from "@/utils/storge.js";
Vue.use(VueRouter)

const routes = []
const router = new VueRouter({
  routes: routes.concat(asyncRouterMap),
  base: window.publicPath ? window.publicPath + '/' : '',
  mode:
    process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test'
      ? 'history'
      : 'hash'
})

router.beforeEach((to, from, next) => {
  // 路由拦截
  NProgress.start() // start progress bar

  next()
  NProgress.done()

  // if (storage.get(ACCESS_TOKEN)) {

  //   if (to.path === loginRoutePath) {

  //     next({ path: defaultRoutePath })
  //     NProgress.done()
  //   } else {
  //     // console.log(store.getters)
  //     // next()
  //     // check login user.roles is null
  //     if (store.getters.roles.length === 0) {
  //       // request login userInfo
  //       store
  //         .dispatch('GetInfo')
  //         .then(res => {
  //           console.log(res);
  //           const roles = res.result && res.result.role
  //           // generate dynamic router
  //           store.dispatch('GenerateRoutes', { roles }).then(() => {
  //             // 根据roles权限生成可访问的路由表
  //             // 动态添加可访问路由表
  //             router.addRoutes(store.getters.addRouters)
  //             // 请求带有 redirect 重定向时，登录自动重定向到该地址
  //             const redirect = decodeURIComponent(from.query.redirect || to.path)
  //             if (to.path === redirect) {
  //               // set the replace: true so the navigation will not leave a history record
  //               next({ ...to, replace: true })
  //             } else {
  //               // 跳转到目的路由
  //               next({ path: redirect })
  //             }
  //           })
  //         })
  //         .catch(() => {
  //           notification.error({
  //             message: '错误',
  //             description: '请求用户信息失败，请重试'
  //           })
  //           // 失败时，获取用户信息失败时，调用登出，来清空历史保留信息
  //           store.dispatch('Logout').then(() => {
  //             next({ path: loginRoutePath, query: { redirect: to.fullPath } })
  //           })
  //         })
  //     } else {
  //       next()
  //     }
  //   }
  // } else {
  //   if (whiteList.includes(to.name)) {
  //     // 在免登录白名单，直接进入
  //     next()
  //   } else {
  //     next({ path: loginRoutePath, query: { redirect: to.fullPath } })
  //     NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
  //   }
  // }
})

Vue.config.productionTip = false

export default router
